BDOS

#include <dos.h>
            
int bdos(dosfn, dosdx, dosal);
int dosfn;                        	номер функции
unsigned int dosdx;              значение регистра DX
unsigned int dosal;               значение регистра AL

Описание.
Функция bdos выполняет системный вызов MS DOS, номер которого определен в dosfn, после размещения соответственно в регистрах DX и AL значений dosdx и dosal. Функция bdos выполняет команду INT 21H для осуществления системного вызова. Функция bdos задается для использования при вызовах DOS-системных вызовов, которые не принимают аргументов или только принимают их в регистры DX(DH,DL) и/или AL.

Возвращаемое значение.
Функция bdos возвращает значение регистра AX, запомненного системным вызовом.

Замечание.
Этот вызов не может использоваться для осуществления системных вызовов, в которых указываются ошибки посредством установки флага переноса. Т.к. Си-программы не имеют доступа к этому флагу, статус возвращаемого значения не может быть определен. В этом случае используется функция intdos.

Пример:
В следующем примере выводится подсказка 9 функцией MS DOS (вывод строки). Поскольку значение регистра AL не является необходимым, то передается 0. Этот пример работает правильно только для малой и средней моделей памяти, так как bdos не меняет значения сегментов регистров.

#include <dos.h>
            
char *buffer = "Enter file name :$";
           
/* AL не является необходимым, поэтому передается 0 */
            
bdos(9,(unsigned)buffer,0);
Hosted by uCoz